Managed DirectX и XNA Framework
2006-11-06
Не знаю, будет ли это кому-нибудь интересно, но могу написать о Microsoft XNA Framework.
XNA Framework - новая платформа от Microsoft для разработки игр, основанная на управляемом (managed) коде и Microsoft .NET Framework 2.0. Позволяет очень легко создавать игры для игровой приставки XBox-360 и Windows. Пока что доступна вторая бета-версия среды Game Developer Studio Express Edition для энтузиастов и небольших разработчиков, к ней прилагается бета самого Framework'а.
XNA призвана заменить существующий Managed Direct X (который далее развиваться не будет) и в будущем стать основной платформой разработчиков средних по требовательности игр. Возможно, XNA сгодится и для технологически продвинутых игр, но вопрос с производительностью ещё не до конца понятен.
Так вот, в субботу я перевёл свою многострадальную игру на XNA. Что поменялось в XNA по сравнению с Managed DirectX?
Классическая правая система координат из учебников по математике и физике вместо компьютерной левой. Это хорошо для новичков и в целом для понимания, но плохо для существующих компьютерных учебников по 3d и существующих проектов на MDX, которые надо переводить на XNA.
Далее: стало ещё проще создать новую игру, поскольку в XNA встроен готовый класс Game. Достаточно наследовать от него, и сразу получаете немало полезной функциональности.
Само собой, теперь игры легко делать кросс-платформенными, но Game Developer Studio Express нельзя использовать для коммерческих игр под X-Box 360. Для этого придётся купить версию Professional, которая появится летом.
Из минусов - в XNA пока что нет никакого GUI и никаких средств вывода текста.
И последнее - XNA теперь является небольшой библиотекой размером в 2 MB вместо идиотского подхода Managed Direct X, когда надо было ставить специальную версию DirectX включавшую Managed часть. Это очень радует.
Правда крайне огорчает тот факт, что для работы моей крошечной двумерной игры потребуется:
1)Установленный .NET Framework 2.0
2)Установленный DirectX последней версии (именно что последней)
3)Установленный XNA Framework
4)Более двухсот! мегабайт оперативной памяти. Ужас, знаю. Надеюсь, это ещё изменится.
5)Видеокарта с поддержкой Shaders 2.0 (это ещё надо проверить, возможно, что и не потребуется)